/*************************************************
	Fichier: Formes.h
	Définie les fonctions utilisées dans Formes.c
**************************************************/
#ifndef FORMES_H
#define FORMES_H

#include "Constantes.h"

/*
	 struct Piece
	 définie une pièce en fonction de sa position dans le terrain, de sa couleur et d'une forme
*/
struct Piece
{
	Couleur couleur;
	int forme[MAX_TAILLE_PIECE_X][MAX_TAILLE_PIECE_Y];
	int posXpiece;
	int posYpiece;
};

typedef struct Piece Piece;

/*
	Création d'une pièce du tetris
*/
Piece* FormeCreerPiece(void);

/*
	Libere une pièce du tetris
*/
void FormeDetruirePiece(Piece* p);

/*
	Initialisation d'une pièce du tétris
	paramétre p pièce à initialiser
	paramétre f pièce avec laquelle on initialise p
	paramétre c pièce initialisée avec la Couleur c
*/
void FormeInitialiserPiece(Piece* p, Couleur c, int f[MAX_TAILLE_PIECE_X][MAX_TAILLE_PIECE_Y]);

/*
	 Permet de faire tourner la pièce 
	 il faut que p soit initialisée
*/
void FormeRotationPiece(Piece* p);

/*
	Vérifie si une pièce est vide
	il faut que p soit initialisée
	retourne 1 si la pièce est vide, 0 sinon
*/
int FormeEstVide(Piece* p);

/*
	Affichage d'une pièce en tableau de deux dimensions
	p ne doit pas forcément être initialisée
*/
void FormeAfficherPiece(Piece* p);

extern int Formes[COULEUR_MAX][MAX_TAILLE_PIECE_X][MAX_TAILLE_PIECE_Y];

#endif
